A high level modeling system (HLMS) is a software tool in which electronic designs can be described, simulated, and translated by machine into a design realization. An HLMS provides a higher level of abstraction for describing an electronic circuit than a hardware description language (HDL) simulation environment such as the ModelSim environment from the Model Technology company. An HLMS generally provides a mathematical representation of signals as compared to standard logic vectors in a hardware description language (HDL). It is desirable for the high-level abstractions to be precisely correlated with the ultimate implementation representation, both in simulation semantics and in implementation. The Xilinx System Generator tool for DSP and the MathWorks' Simulink and MATLAB environments are example HLMS's in which such capabilities are desirable.
In an HLMS-based design, there may be some components that are described in an HDL. It is often desirable to simulate the HDL components while simulating the HLMS-based design. The process of incorporating an HDL simulation into an HLMS-based simulation is referred to as co-simulation.
A variety of different co-simulation engines are available for use in co-simulating part of a design. The particular co-simulation engine that is selected for use in the simulation depends on design objectives as well as the compatibility between the HLMS and various co-simulation engines.
Example co-simulation engines include both software-based and hardware-based systems. The Modelsim simulator and the NC-SIM simulator from Cadence are example software-based simulators, and the Wildcard simulator from Annapolis Microsystems and the Benone simulator from Nallatech are example hardware-based simulators. In software-based co-simulations the user may perform a behavioral simulation or perform simulation using a synthesized and mapped version of the design.
For large systems it may be desirable to use different co-simulation engines to simulate different parts of the system. However, even with the varied types of co-simulation engines and different high-level modeling systems, the available simulation options may be limited by a lack of infrastructure to support communication between the high-level and low-level simulation components.
A system and method that address the aforementioned problems, as well as other related problems, are therefore desirable.